/*
 * Copyright (c) 2009, Servoy-stuff
 * 
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 * 
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 * http://www.fsf.org/licensing/licenses/lgpl.txt
 */

package net.stuff.servoy.beans.calendar;

import java.awt.Color;

import com.servoy.j2db.plugins.IClientPluginAccess;
import com.servoy.j2db.ui.IComponent;
import com.servoy.j2db.ui.IScriptFormattedFieldMethods;

/**
 * 
 * @author servoy-stuff
 * http://www.servoy-stuff.net/
 */
public interface IDateChooserBeanComponent extends IComponent, IScriptFormattedFieldMethods {

	public static final String ELEMENT_TYPE = "BEAN_CALENDAR";
	public static final String TOOLTIP_GET_BGCOLOR = "bgcolor";
	public static final String TOOLTIP_GET_FGCOLOR = "fgcolor";
	public static final String TOOLTIP_IS_VISIBLE = "visible";
	public static final String TOOLTIP_IS_ENABLED = "enabled";
	public static final String TOOLTIP_GET_LOCATIONX = "getLocationX";
	public static final String TOOLTIP_GET_LOCATIONY = "getLocationY";
	public static final String TOOLTIP_SET_LOCATION = "setLocation";
	public static final String TOOLTIP_GET_WIDTH = "getWidth";
	public static final String TOOLTIP_GET_HEIGHT = "getHeight";
	public static final String TOOLTIP_SET_SIZE = "setSize";
	public static final String TOOLTIP_GET_CLIENTPROP = "getClientProperty";
	public static final String TOOLTIP_GET_ELEMENT_TYPE = "getElementType";
	public static final String TOOLTIP_GET_NAME = "getName";
	public static final String TOOLTIP_PUT_CLIENTPROP = "putClientProperty";
	public static final String TOOLTIP_SET_BORDER = "setBorder";
	public static final String TOOLTIP_GET_FORMAT = "format";
	public static final String TOOLTIP_IS_READONLY = "readOnly";
	public static final String TOOLTIP_TOOLTIP = "toolTipText";
	public static final String TOOLTIP_TRANSPARENCY = "transparent";
	public static final String TOOLTIP_DATA_PROVIDER = "getDataProviderID";
	public static final String TOOLTIP_IS_EDITABLE = "editable";
	public static final String TOOLTIP_SET_FONT = "setFont";
	public static final String TOOLTIP_GET_LABELFOR = "getLabelForElementNames";
	public static final String TOOLTIP_REQUEST_FOCUS = "requestFocus";
	
	public void setDataProviderID(String dataProvider);
	
	public String getDataProviderID();
	
	public void setFormat(String dateFormatString);
	
	public String getFormat();
	
	public void setHorizontalAlignment(int paramInt);
	
	public int getHorizontalAlignment();
			
	public void initialize(IClientPluginAccess app);
	
	public void setOnAction(String onAction);
	
	public void setOnDataChange(String onDataChange);
	
	public void setOnFocusGained(String onFocusGained);
	
	public void setOnFocusLost(String onFocusLost);
	
	public void setValidColor(Color validColor);
	
	public void setErrorColor(Color errorColor);
	
	public void setEditable(boolean editable);
	
	public boolean isEditable();
	
	public boolean getValidationEnabled();
	
	public void fireActionCallBack();
	
	public void fireDataChangeCallBack(Object[] params);
	
	public void fireFocusLostCallBack();
	
	public void fireFocusGainedCallBack();
	
	public void setValid();
	
	public void setInvalid();
	
	public void resetForeground();
	
	public Object getDateTextField();
		
	public boolean isSelectOnEnter();
	
	public void setSelectOnEnter(boolean selectOnEnter);
	
	public String getTitleText();
	
	public void setTitleText(String titleText);
		
}
